A controller may control access to a plurality of storage devices. In response to input/output (I/O) requests from applications that execute in one or more host computational devices that are coupled to the controller, the controller may perform corresponding I/O operations on one or more of the plurality of storage devices and return one or more responses to the one or more host computational devices. In certain situations, the I/O requests may be generated by applications that execute in the controller, and the controller may perform corresponding I/O operations on one or more of the plurality of storage devices and return one or more responses to the applications.
In certain situations, the plurality of storage devices may be hard disk drives (HDD) or solid state drives (SSD) or other types of storage devices. In certain situations, the HDDs or SSDs may be configured as a redundant array of independent disks (RAID) or in some other configuration. The controller may comprise a RAID controller, HDD controllers, SSD controllers, and other controllers that interface with the plurality of storage devices. In certain situations, the controller may be a storage controller.
Applications executing in the host computational devices or in the controller may perform I/O by addressing storage via logical addresses. The controller may map the logical addresses to physical addresses on one or more of the plurality of storage devices by using the interfaces to the storage devices. In certain situations, when a range of logical addresses corresponding to a single I/O request from an application is mapped by the controller (and/or the interfaces) to physical addresses on the storage devices, the physical addresses may span more than one storage device.